x86/EFI: fix runtime call status for compat mode Dom0
authorJan Beulich <jbeulich@suse.com>
Mon, 29 Apr 2013 09:27:54 +0000 (11:27 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 29 Apr 2013 09:27:54 +0000 (11:27 +0200)
The top two bits (indicating error/warning classification) need to
remain the top two bits.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/arch/x86/efi/runtime.c

index be3f5376b3a61e4fd32bf5b8dc9f652f86b4ee57..37bb535db7ac79cdfe7d88df4311395ab8f34f8f 100644 (file)
@@ -531,7 +531,7 @@ int efi_runtime_call(struct xenpf_efi_runtime_call *op)
 #ifndef COMPAT
     op->status = status;
 #else
-    op->status = (status & 0x3fffffff) | (status >> 62);
+    op->status = (status & 0x3fffffff) | ((status >> 32) & 0xc0000000);
 #endif
 
     return rc;